package com.bwie.doctor.mapper;

import com.bwie.doctor.domain.dto.AddGroupDTO;
import com.bwie.doctor.domain.po.DoctorGroupPo;
import com.bwie.doctor.domain.vo.DoctorGroupVo;
import com.bwie.doctor.domain.vo.GroupPatientVo;
import com.bwie.doctor.domain.vo.MessageResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface DoctorPatientMapper {
    /**
     * 医生获取患者分组列表
     * @return
     */
    List<DoctorGroupVo> getDoctorGroup(Long userid);

    /**
     * 医生获取分组患者列表
     * @param id
     * @return
     */
    List<GroupPatientVo> getGroupPatient(Integer id);

    /**
     * 根据id查询分组信息
     * @param id
     * @return
     */
    DoctorGroupPo getDoctorGroupById(Integer id);

    /**
     * 医生删除分组
     * @param id
     * @return
     */
    int delGroup(Integer id);

    /**
     * 删除分组下用户信息
     * @param id
     */
    void delGroupPatient(Integer id);

    /**
     * 医生添加分组
     * @param addGroupDTO
     * @param userid
     * @return
     */
    int addGroup(@Param("add") AddGroupDTO addGroupDTO, @Param("userId") Long userid);

    /**
     * @Author ZhangYuQi
     * @Description 群发消息
     * @Date 上午11:24 2025/2/25
     * @Param [request]
     * @return
     */
    void insertMessage(@Param("messageContent") String messageContent, @Param("doctorId") Long doctorId);

    /**
     * @Author ZhangYuQi
     * @Description 历史消息记录
     * @Date 上午11:27 2025/2/25
     * @Param [id, userIds]
     * @return
     */
    void insertMessageHistory(@Param("messageId") Long messageId, @Param("userIds") List<Long> userIds);

    /**
     * @Author ZhangYuQi
     * @Description 查询历史消息记录
     * @Date 下午2:03 2025/2/25
     * @Param [userId]
     * @return
     */
    List<MessageResponse> selectMessageHistory(Long userId);
}